#ifndef FIELDH_H
#define FIELDH_H
#include <QString>
#include <QStringList>
#include <windows.h>
#define range_loop(size) for(int loop = 0; loop < size; loop++)
#define thread_state_assert(key){\
    if (impact_thread[key] == NT::THREAD_RECOVER || \
        impact_thread[key] == NT::THREAD_PAUSE) impact_thread[key] = NT::THREAD_TERMINATED;\
}
struct NT{

    typedef enum {
    CUT_ANALYTOOL,
    CUT_QRCODETOOL,
    CUT_SERIALTOOL,
    } TOOL_CFUNC;

    typedef enum {
    THREAD_RECOVER,
    THREAD_TERMINATED,
    THREAD_PAUSE,
    THREAD_IDLEABOUT
    } THREAD_STATE;

    typedef enum {
    CUT_FROMCNEDIT,
    CUT_FROMODEDIT,
    CUT_FROMQREDIT,
    CUT_CONNECTLIST,
    CUT_COMMANDLIST,
    CUT_HLITEXTLIST,
    CUT_ANALYLIST,
    CUT_QRCODELIST,
    CUT_SERIALCONNECT,
    CUT_SERIALSAVE,
    CUT_SERIALUPDATE,
    CUT_COMMANDSEND,
    CUT_COMMANDSAVE,
    CUT_QRCODESAVE,
    CUT_QRCODEPROD,
    } TOOL_VALIDCUT;

    typedef enum {
    PIXLOAD_TILEWIN,
    PIXLOAD_KEEPRATIO,
    PIXLOAD_IGNORERATIO_CAPITAL,
    PIXLOAD_IGNORERATIO_LOWER
    } WIN_ATTRIBUTE;

    typedef enum {
    CHILD_TOOL_QUIT,
    CHILD_MEDIA_QUIT,
    MAIN_DOOR_QUIT
    } WIN_QUIT_ATTRIBUTE;

    typedef enum{
    CUT_INVALID_TYPE,
    CUT_MUSIC_TYPE,
    CUT_VIDEO_TYPE,
    } CUT_MEDIA_TYPE;

    typedef enum{
    LOCALTION_ROOF_LEFT, //0
    LOCALTION_CENTER_ROOF, //1
    LOCALTION_ROOF_RIGHT, //2
    LOCALTION_CENTER_RIGHT, //3
    LOCALTION_BOTTON_RIGHT, //4
    LOCALTION_CENTER_BOTTON, //5
    LOCALTION_BOTTON_LEFT, //6
    LOCALTION_CENTER_LEFT, //7
    LOCALTION_UNVALID, //8
    LOCALTION_VALID
    } LOCALTION;


    typedef enum{
    ALIGN_CENTER,
    ALIGN_LEFT,
    ALIGN_RIGHT,
    ALIGN_TOP,
    ALIGN_DOWN,
    } ALIGNMENT;

    typedef enum{
    DRAWTYPE_ROUND,
    DRAWTYPE_RECT,
    ORIEN_HORIZONTAL,
    ORIEN_VERTICAL,
    UPD_BACKCOLOR,
    UPD_FORECOLOR,
    CUT_GLOBALHL,
    CUT_KEYWORKHL,
    CUT_LOCALRSLOCK,
    CUT_NEARRSLOCK,
    CUT_RECORDLOCK,
    CUT_FAVORARSLOCK,
    CUT_DEPUTYCLEAR,
    CUT_DEPUTYUPDATE,
    CUT_DEPUTYDOWNLOAD,
    CUT_ANTICLOCKWISE,
    CUT_CLOCKWISE,
    CST__UNVALID
    } CST_BRIGHT_SPOT;

    typedef enum{
    ANALYFUNC_BACK_COMPARE,
    } TASKEXEC;

    typedef enum{
    VERIFY_OVERALL,
    VERIFY_NUMBER,
    VERIFY_LATTER,
    VERIFY_SPECIAL,
    VERIFY_CHZCHAR
    } VERIFYTPE;

};

enum ThreadPoint{
    ANALY_STICK,
    ANALY_EXCELCOMPARE,
    MULTI_ADDTION,
    MULTI_AMEND,
    MULTI_CROP,
    MULTI_REMOVE,
    MULTI_NWRQST,
    MULTI_TABUPDATE,
    MULTI_MDCVUPDATE,
    MULTI_MDLYCDATE,
    NETWORK_VISIT
};

struct{
    QString SERIALFUNC_REBOOTIMER = "SERIALFUNC_REBOOTIMER";
} TIMER_TASK;

struct MOUSE_ATTRIBUTE{
    static constexpr const char* WIN_CURRENT = "MSEV-TYPE-01";
    static constexpr const char* WIN_NORMAL = "MSEV-TYPE-02";
    static constexpr const char* WIN_ENTER = "MSEV-TYPE-03";
    static constexpr const char* WIN_LEAVE = "MSEV-TYPE-04";
    static constexpr const char* WIN_PRESS = "MSEV-TYPE-05";
    static constexpr const char* WIN_RELEASE = "MSEV-TYPE-06";
};

struct KEY_ATTRIBUTE{
    static constexpr const char* CUT_COMMANDLIST = "RELIABLE-REPLACEK-00001";
    static constexpr const char* CUT_CONNECTLIST = "RELIABLE-REPLACEK-00002";
    static constexpr const char* CUT_EXBUTCHANGE = "RELIABLE-REPLACEK-00003";
    static constexpr const char* CUT_FUNCNAME = "RELIABLE-REPLACEK-00004";
    static constexpr const char* CUT_VIEW_INDEX = "RELIABLE-REPLACEK-00005";
    static constexpr const char* UPD_VIEW_STATE = "RELIABLE-REPLACEK-00006";
    static constexpr const char* UPD_CNLIST_ITEMS = "RELIABLE-REPLACEK-00007";
    static constexpr const char* UPD_ODLIST_ITEMS = "RELIABLE-REPLACEK-00008";
    static constexpr const char* UPD_HLLIST_ROWS = "RELIABLE-REPLACEK-00009";
    static constexpr const char* UPD_CNLIST_ROWS = "RELIABLE-REPLACEK-00010";
    static constexpr const char* UPD_ODLIST_ROWS = "RELIABLE-REPLACEK-00011";
    static constexpr const char* UPD_QRLIST_ROWS = "RELIABLE-REPLACEK-00012";
    static constexpr const char* UPD_CNLIST_ROW = "RELIABLE-REPLACEK-00013";
    static constexpr const char* UPD_ODLIST_ROW = "RELIABLE-REPLACEK-00014";
    static constexpr const char* UPD_COLOR_CHANGE = "RELIABLE-REPLACEK-00015";
    static constexpr const char* UPD_HLIGHT_RECOVER = "RELIABLE-REPLACEK-00016";
    static constexpr const char* UPD_THREAD_STATE = "RELIABLE-REPLACEK-00017";
    static constexpr const char* WIN_SIZE_W = "RELIABLE-REPLACEK-00018";
    static constexpr const char* WIN_SIZE_H = "RELIABLE-REPLACEK-00019";
    static constexpr const char* WIN_PROPORTION_W = "RELIABLE-REPLACEK-00020";
    static constexpr const char* WIN_PROPORTION_H = "RELIABLE-REPLACEK-00021";
    static constexpr const char* WIN_MSG_SUPERMENTS = "RELIABLE-REPLACEK-00022";
};

struct USER_DATA_TAKEIN{
    QString USER_ID;
    QString USER_NAME;
    QString USER_KEY;
    QString USER_HEAD;
    QString USER_HEADP;
    QString USER_HEAD_SZ;
    QString USER_HEAD_RC;
    QString USER_HEAD_USE;
    bool USER_RECALL;
    bool USER_RELOGIN;
    bool USER_FINAL;
    bool USER_MIGHT;
    QList<QString> USER_IDS;
    QList<QString> USER_NAMES;
    QList<QString> USER_KEYS;
    QList<QString> USER_HEAD_BTS;
    QList<QString> USER_HEAD_PS;
    QList<QString> USER_HEAD_SZS;
    QList<QString> USER_HEAD_RCS;
    QList<QString> USER_FAVOR_NS;
    QList<QString> USER_FAVOR_PS;
    QList<QString> USER_FAVOR_LKS;
    QList<bool> USER_RECALLS;
    QList<bool> USER_RELOGINS;
    QList<bool> USER_FINALS;
    QList<bool> USER_MIGHTS;
    QList<bool> USER_HEAD_USES;

    QString IP_LOGIN_NAME;
    QString IP_LOGIN_KEY;
    QString IP_ENROLL_NAME;
    QString IP_ENROLL_KEY;
    QString IP_ENROLL_QKEY;
    QString IP_ENROLL_ALIAS;
    QString IP_DATUM_NAME;
    QString IP_DATUM_KEY;
    QString IP_DATUM_QKEY;
    QString IP_DATUM_ALIAS;
    bool IP_LOGIN_RECALL;
    bool IP_LOGIN_RELOGIN;

    void release(){
        USER_ID.clear();
        USER_NAME.clear();
        USER_KEY.clear();
        USER_HEAD.clear();
        USER_HEADP.clear();
        USER_HEAD_SZ.clear();
        USER_HEAD_RC.clear();
        USER_HEAD_USE.clear();
        USER_RECALL=false;
        USER_RELOGIN=false;
        USER_FINAL=false;
        USER_MIGHT=false;
        USER_IDS.clear();
        USER_NAMES.clear();
        USER_KEYS.clear();
        USER_HEAD_BTS.clear();
        USER_HEAD_PS.clear();
        USER_HEAD_SZS.clear();
        USER_HEAD_RCS.clear();
        USER_FAVOR_NS.clear();
        USER_RECALLS.clear();
        USER_RELOGINS.clear();
        USER_FINALS.clear();
        USER_MIGHTS.clear();
        USER_HEAD_USES.clear();

        IP_LOGIN_NAME.clear();
        IP_LOGIN_KEY.clear();
        IP_ENROLL_NAME.clear();
        IP_ENROLL_KEY.clear();
        IP_ENROLL_QKEY.clear();
        IP_ENROLL_ALIAS.clear();
        IP_DATUM_NAME.clear();
        IP_DATUM_KEY.clear();
        IP_DATUM_QKEY.clear();
        IP_DATUM_ALIAS.clear();
        IP_LOGIN_RECALL=false;
        IP_LOGIN_RELOGIN=false;
};

};


#endif




